2M-point discrete Fourier transform calculator comprising a pre-processor for twice performing extraction of conjugate symmetric and/or antisymmetric components

ABSTRACT

An N-point DFT (discrete Fourier transform) calculator comprises a pre-processor responsive to N-point complex input data F k  (k=0 to N-1) for producing N/2-point complex intermediate data G p  (p=0 to N/2-1) and an N/2-point DFT calculating circuit supplied with the intermediate data as N/2-point complex input data for producing in a known manner real and imaginary parts g q   R  and g q   I  of DFT&#39;s or IDFT&#39;s (inverse DFT) g q  (q=0 to N/2-1) of the latter input data G p  as either real or imaginary parts f n   R  or f n   I  (n=0 to N-1) of even and odd numbered DFT&#39;s or IDFT&#39;s f 2n&#39;   and f 2n&#39;+1  (n&#39;=0 to N/2-1) of the original input data F k . The pre-processor extracts from the input data F k  a truncated sequence of conjugate symmetric or antisymmetric components H m , N/2+1 in number, extracts from the truncated sequence conjugate symmetric and antisymmetric components A p  and B p , [N/4]+1 in number where the brackets are the Gauss&#39; notation, and calculates complex products of ones of the latter components A p  or B p  and factors, such as jexp(-j[2π/N]p) for DFT&#39;s or jexp(j[2π/N]p) for IDFT&#39;s, sums of the products and the others of the latter components B p  or A p , differences between the products and the others B p  or A p , and conjugate complex data of the differences. For the real parts f n   R , the sums and the conjugate complex data provide the intermediate data. For the imaginary parts f n   I , the differences are used instead of the sums. For factors exp(-j[2π/N]p) or exp(j[2π/N]p), each of the other components B p  or A p  should include a factor j.

BACKGROUND OF THE INVENTION

This invention relates to an N-point discrete Fourier transform calculator. The calculator is for calculating discrete Fourier transforms (hereafter abbreviated to DFT) of a sequence of N-point discrete samples. Inasmuch as calculation of inverse discrete Fourier transforms (hereafter abbreviated to IDFT) of DFT's is similar in nature as will later be described, the calculator is capable of calculating also IDFT's. The number of points N is herein equal to an even number and therefore to 2M, where M represents an integer.

DFT is known as a mathematical operation for finding a frequency spectrum of a sequence of a finite number of discrete signals and is useful in digitally processing the signals. For example, a DFT calculator is used as a digital spectrum analyser and a digital filter. DFT calculators are used also in modulators and demodulators of a transmultiplexer for interconnecting a time division multiplex (TDM) network and a frequency division multiplex (FDM) network.

A sequence of DFT's F_(k) (k=0, 1, . . . , and N-1) of a sequence of N-point discrete samples f_(n) (n=0, 1, . . . , and N-1) is defined by: ##EQU1## IDFT is an inverse operation of DFT. Namely, a sequence of IDFT's f_(n) of the DFT's F_(k) is calculated according to: ##EQU2## As regards the type of calculation, Equations (1) and (2) are equivalent to each other except for the factor 1/N and the sign of the argument of the exponential function. It is therefore possible to use a DFT calculator both for DFT's and IDFT's as mentioned hereinabove. Due to periodic nature of the discrete values f_(n) and F_(k), it is possible to regard f_(N) and F_(N) to be equal to f₀ and F₀, respectively.

Merely for convenience of description, let use be made, instead of Equations (1) and (2), of: ##EQU3## It should be pointed out here that multiplication has had to be carried out N times in order to calculate Equation (3) for a particular value of the ordinal numbers n used to generally represent any member of the DFT's or IDFT's. It is therefore mandatory to perform multiplication N² times for all discrete samples f_(n). With an increase in the number of points N, the number of times of multiplication grows quadratically so as to render a real-time DFT calculator inhibitingly bulky.

In various publications, fast Fourier transform (hereafter abbreviated to FFT) calculators are described. An FFT calculator is usable when the number of points N is divisible into products of integers. An example of such publications is a book entitled "Theory and Application of Digital Signal Processing" written by L. R. Babiner and B. Gold and published by Prentice-Hall, Inc., of New Jersey, U.S.A., pages 598 to 626. According to FFT, it is possible to materially reduce the number of times of multiplication. Particularly when the number of points N is given by a power to two 2^(n) (the letter "n" being used for the time being with no connection to the letter "n" used elsewhere in the instant specification to generally represent the ordinal numbers of the discrete samples), the number of times of multiplication is reduced to (N/2) log₂ N and, in practice, to (N/2)(log₂ N-2) because two of log₂ N stages of the multiplication are mere multiplication by l and j, respectively.

Both the input discrete samples F_(k) of a sequence supplied to a DFT calculator and the output DFT's or IDFT's f_(n) are given by complex data in general. It is, however, often the case that the input data are limited to real data and/or that only real parts are necessary among the complex output data. Even in such a case, it has been infeasible to reduce the number of times of multiplication with a conventional DFT calculator. Inasmuch as a speed of arithmetic operation of a digital system is dependent on the number of times of multiplication, it has been impossible to improve the speed with a conventional DFT calculator. This applies to power consumption of the digital system.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide an N-point DFT calculator whereby it is possible to materially reduce the number of times of multiplication when either real or imaginary parts of output complex data are necessary. The letter "N" represents an even number.

It is another object of this invention to provide a compact and economical DFT calculator of the type described.

It is still another object of this invention to provide a high-speed DFT calculator of the type described.

It is yet another object of this invention to provide a DFT calculator of the type described, which is operable with a less power consumption.

According to this invention, there is provided a DFT calculator responsive to a sequence of N-point discrete complex input data, where N is representative of an even number, for producing a prescribed one of a sequence of real parts of N-point DFT's of the input data, a sequence of imaginary parts of the DFT's, a sequence of real parts of N-point IDFT's of the input data, and a sequence of imaginary parts of the IDFT's. The calculator comprises a pre-processor responsive to the input data for producing a sequence of N/2-point complex intermediate data and an N/2-point DFT calculating circuit having real output terminals, N/2 in number, and imaginary output terminals, also N/2 in number, responsive to the N/2-point complex intermediate data supplied thereto as N/2-point complex input data for supplying the real and imaginary output terminals with the transforms of the prescribed sequence. The pre-processor comprises, in turn, first means for extracting from the input data a truncated sequence of first conjugate components of one of symmetry and antisymmetry that is selected according as the real parts of the DFT's and the IDFT's are to be produced and the imaginary parts of the DFT's and the IDFT's are to be produced, respectively, second means for extracting from the first conjugate components a symmetric sequence of second conjugate components and an antisymmetric sequence of second conjugate components, and third means for calculating complex products of factors selected according as the real and imaginary parts of the DFT's and the real and imaginary parts of the IDFT's are to be produced and the second conjugate components of one of the symmtric and antisymmetric sequences that is selected according as the real parts of the DFT's and the IDFT's and the imaginary parts of the DFT's and the IDFT's are to be produced, respectively, first algebraic sums of the complex products and the respective second conjugate components of the other of the symmetric and antisymmetric sequences, second algebraic sums of the complex products and the respective second conjugate components of the above-mentioned other sequence, and conjugate complex data of the second algebraic sums. The first algebraic sums and the conjugate complex data provide the N/2-point complex intermediate data.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 is a block diagram of a DFT calculator according to a first embodiment of the present invention;

FIG. 2 exemplifies in blocks a pre-processor for use in the DFT calculator illustrated in FIG. 1;

FIGS. 3(a) and (b) cooperate with each other to schematically show a flow of signals in the DFT calculator depicted in FIG. 1 and comprising the pre-processor exemplified in FIG. 2;

FIG. 4 schematically shows a portion of the signal flow which is somewhat different from that depicted in FIG. 3(a);

FIG. 5 is a block diagram of a circuit used in the pre-processor shown in FIG. 2 for calculating a conjugate complex datum;

FIG. 6 is a block diagram of a complex adder used in the pre-processor exemplified in FIG. 2; and

FIG. 7 is a block diagram of a complex multiplier used in the pre-processor illustrated in FIG. 2.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring to FIG. 1, an N-point DFT calculator according to a first embodiment of the present invention is for carrying out IDFT defined by Equation (3) hereinabove. The calculator comprises a plurality of input terminals 10₀, 10₁, 10₂, . . . , 10_(N-2), and 10_(N-1) for a sequence of N-point complex input data F_(k) (k=0, 1, 2, . . . , N-2, and N-1), a pre-processor 11 responsive to the input data F_(k) for supplying a plurality of output leads 12₀, 12₁, . . . , 12_(N/2-2), and 12_(N/2-1) with a sequence of N/2-point complex intermediate data G_(p) (p=0, 1, . . . , N/2-2, and N/2-1) in a manner described later, and an N/2-point DFT calculating circuit 13 for calculating IDFT's g_(q) (q=0, 1, . . . , N/2-2, and N/2-1) of the intermediate data G_(p) supplied thereto as a sequence of N/2-point complex input data to deliver real parts g.sub. q^(R) and imaginary parts g_(q) ^(I) of the calculated IDFT's g_(q) to real output terminals 14₀, 14₁, . . . , 14_(N/2-2), and 14_(N/2-1) and imaginary output terminals 15₀, 15₁, . . . , 15_(N/2-2), and 15_(N/2-1), respectively. As the DFT calculating circuit 13, use is possible of a known DFT calculator, such as an FFT calculator described in the above-referenced book with reference to FIG. 10.20 thereof, page 599. As will later be evidenced, the real and imaginary parts g_(q) ^(R) and g_(q) ^(I) are equal to real parts f_(n) ^(R) of a sequence of complex output data f_(n) given by: ##EQU4##

According to a first aspect of the first embodiment, the pre-processor 11 derives the N/2-point intermediate data G_(p) from the N-point complex input data F_(k) in compliance with: ##EQU5## for p=0, 1, . . . , and N/4, where the asterisk represents conjugate complex data and where: ##EQU6## for p=0, 1, . . . , and N/4, where, in turn:

    H.sub.m =(1/2)(F.sub.m +F.sub.N-m *)                       (7)

for m=0, 1, . . . , and N/2. As implied by the number designated by N/4, it is presumed here that the number N/4 is an integer. In other words, the number of points N of the input data F_(k) is assumed to be equal to an even integral multiple of two. It is readily understood that the intermediate datum G_(N/4) appears in both former and latter halves of Equation (5) and that A_(p) =A_(N/2-p) *, B_(p) =-B_(N/2-p) *, and H_(m) =H_(N-m) *. Inasmuch as conjugate complex data, such as F_(N-m) *, are derivable by mere inversion of the polarity of signals representative of the imaginary parts, multiplication is necessary, throughout calculation of Equations (5) through (7), only in calculating Equation (5). Physical meaning of complex data A_(p), B_(p), and H_(m) will become clear as the description proceeds. Description will appear also hereunder as regards a case where the number of points N is equal to an odd integral multiple of two so that the number N/4 is not an integer.

Responsive to the complex intermediate data G_(p), the DFT calculating circuit 13 calculates the IDFT's g_(q) according to: ##EQU7## for q=0, 1, . . . , and N/2-1. The IDFT's g_(q) are related to the real parts of f_(n) ^(R) of the complex output data f_(n) to be derived by Equation (4) as follows:

    f.sub.2n'.sup.R =Re[g.sub.q ]=g.sub.q.sup.R                (9)

and

    f.sub.2n'+1.sup.R =Im[g.sub.q ]=g.sub.q.sup.I              (10)

for n'=0, 1, . . . , and N/2-1.

In order to prove the fact that Equations (9) and (10) are correct, Equations (6) and (7) are substituted into Equation (5). The former half of Equation (5) is:

    G.sub.p =(F.sub.p +F.sub.N-p *)/2+(F.sub.N/2-p *+F.sub.N/2+p)/2+j[(F.sub.p +F.sub.N-p *)/2-(F.sub.N/2-p *+F.sub.N/2+p)/2]×exp(j[2π/N]p) (11)

for p=0, 1, . . . , and N/4. Likewise, the latter half is:

    G.sub.r =[(F.sub.N/2-r +F.sub.N/2+r *)/2+(F.sub.r *+F.sub.N-r)/2-j([F.sub.N/2-r +F.sub.N/2+r *]/2-[F.sub.r *+F.sub.N-r ]/2)×exp(j[2π/N]r)]*,                            (12)

where r=N/2-p. From Equations (11) and (12), the whole Equation (5) turns into a single equation such that:

    G.sub.p =[(F.sub.p +F.sub.N-p *)+(F.sub.N/2-p *+F.sub.N/2+p)-j([F.sub.p +F.sub.N-p *]-[F.sub.N/2-p *+F.sub.N/2+p])×exp(j[2π/N]p)]/2 (13)

for p=0, 1, . . . , and N/2-1. By substituting Equation (13) into Equation (8) and by rewriting two of the terms which appear in the substituted equation by the readily appreciable relations such that: ##EQU8## then the calculated IDFT's g_(q) are given by: ##EQU9## The conjugate complex IDFT's g_(q) * are: ##EQU10## The real and imaginary parts of the calculated IDFT's g_(q) are therefore: ##EQU11## Comparison of Equations (14) and (15) with Equation (4) readily shows that Equations (9) and (10) are correct.

The number of times of multiplication is N/4 in the pre-processor 11 and, for the number of points N given by a power to two, (N/4)×(log₂ [N/2]-2) in the N/2-point DFT calculating circuit 13. The total is (N/4)(log₂ N-2) times, which are a half of the number of multiplications indispensable when an N-point DFT calculating circuit is directly applied to the complex input data F_(k).

According to a second aspect of the first embodiment, the pre-processor 11 derives the N/2-point complex intermediate data G_(p) from the N-point complex input data F_(k) in compliance with: ##EQU12## for p=0, 1, . . . , and N/4. Under the circumstances, the N/2-point DFT calculating circuit 13 produces the calculated IDFT's g_(q) which are related to the real parts of the complex output data f_(n) to be derived from Equation (4) by:

    f.sub.2n'.sup.R =g.sub.q.sup.I

and

    f.sub.2n'+1.sup.R =g.sub.q.sup.R

for n'=0, 1, . . . , and N/2-1.

For an N-point DFT calculator according to the second aspect, it may seem that an additional multiplication is necessary in calculating a product jA_(p) in Equation (5'). The fact is, however, the product in question is calculated in effect by interchanging the real and imaginary parts and by inverting the polarity of the new real part derived from the original imaginary part. The multiplications necessary for the pre-processor 11 in a DFT calculator according to the second aspect is therefore also N/4 times.

In modifications of the calculators according to the first and second aspects of the first embodiment, both complex data A_(p) and B_(p) for p=0, 1, . . . , and N/4 are multiplied by (-1). More particularly, use is made of a pair of halves of an equation such that: ##EQU13## instead of Equation (5). In this event, the polarities of the respective calculated IDFT's g_(q) are inversed. Therefore, the real parts f_(n) ^(R) are given by:

    -f.sub.2n'.sup.R =g.sub.q.sup.R

and

    -f.sub.2n'+1.sup.R =g.sub.q.sup.I.

when use is made, instead of Equation (5'), of another pair of halves of an equation similar to Equation (5"), the real parts f_(n) ^(R) are given by:

    -f.sub.2n'.sup.R =g.sub.q.sup.I

and

    -f.sub.2n'+1.sup.R =g.sub.q.sup.R.

an N-point DFT calculator according to a second embodiment of this invention produces the imaginary parts f_(n) ^(I) of the IDFT's f_(n) defined by an equation corresponding to Equation (4). The pre-processor 11 derives N/2-point complex intermediate data G_(p) ^(a) from the N-point complex input data F_(k) in accordance with: ##EQU14## for p=0, 1, . . . , and N/4. Instead of the complex data H_(m) calculated by Equation (7), use is made, in calculating the complex data A_(p) and B_(p), of similar data H_(m) ^(a) given by:

    H.sub.m.sup.a =(1/2)(F.sub.m -F.sub.N-m *)                 (7a)

for m=0, 1, . . . , and N/2. The N/2-point DFT calculating circuit 13 produces calculated IDFT's g_(q) ^(a) which are related to the imaginary parts f_(n) ^(I) by:

    f.sub.2n'.sup.I =Im[g.sub.q.sup.a ]

and

    f.sub.2n'+1.sup.I =Re[g.sub.q.sup.a ].

It is now obvious that use is possible of a pair of halves of an equation which is similar to Equation (5a) and corresponds to Equation (5'), (5"), or the like. When unnecessary, primes and affixes "a" will be omitted from the complex data G_(p), H_(m), and the like.

As pointed out hereinabove, an N-point DFT calculator according to this invention is capable of calculating DFT's f_(n) of a sequence of complex input data F_(k). In this event, the arguments of the exponential functions in Equation (4) or the above-mentioned equation corresponding thereto should have minus signs. It is therefore sufficient to merely inverse the signs of the arguments of the exponential functions dealt with in the pre-processor 11 and the N/2-point DFT calculating circuit 13.

Referring temporarily to FIG. 3(a) wherein the number of points N of the complex input data F_(k) is surmised to be eight, complex data A_(p) (p=0, 1, . . . , and N/4), N/4+1 in number, used in Equation (5), (5'), (5"), (5a), or the like are given by a former half of a whole sequence of conjugate symmetric components having an axis of symmetry coincident with a bisector of the whole sequence. Other complex data B_(p) are similarly given by a former half of an entire sequence of conjugate antisymmetric components having a center of symmetry at a point of bisect of the entire sequence. Complex data H_(m) (m=0, 1, . . . , and N/2), N/2+1 in number, calculated in compliance with Equation (7) are given by a former half of a complete sequence of conjugate symmetric components while complex data H_(m) defined by Equation (7a), by a former half of another complete sequence of conjugate antisymmetric components. Due to symmetricalness, use is possible of conjugate symmetric and antisymmetric components H_(N/2+m) or H_(N-m) of latter halves of the respective complete sequences. It may therefore be permissible that the latter components H_(N-m) are also represented by H_(m) because of the equivalency and that the sequences of the conjugate symmetric and antisymmetric components H_(m) are called truncated sequences of first conjugate components H_(m) of symmetry and antisymmetry, respectively. Use is also possible of conjugate symmetric and antisymmetric components A_(N/2-p) and B_(N/2-p), A_(N/2+p) and B_(N/2+p), or A_(N-p) and B_(N-p). It may therefore be permissible to designate the latter components A_(N/2-p), B_(N/2-p), and so forth again by A_(p) and B_(p) and to call the sequences of the conjugate symmetric and antisymmetric components A_(p) and B_(p) a symmetric sequence of second conjugate components A_(p) and an antisymmetric sequence of second conjugate components B_(p). The symmetric and antisymmetric sequences are also truncations from the whole and entire sequences of components A_(p) and B_(p) (p=0 to N/2) named hereinabove. It is therefore possible, as the case may be, to term the truncated sequence of first conjugate components H_(m) of symmetry or antisymmetry and the symmetric and antisymmetric sequences a first truncated sequence of conjugate symmetric or antisymmetric components H_(m), a second truncated sequence of conjugate symmetric components A_(p), and a second truncated sequence of conjugate antisymmetric components B_(p).

Turning now to FIG. 4 wherein the number of points N is equal to an odd integral multiple of two, such as six, the suffixes "p" in Equations (5) and (6) should be 0, 1, . . . , and (N-2)/4 instead of 0, 1, . . . , and N/4. It follows therefore that each of the symmetric and antisymmetric sequences consists of the second conjugate components A_(p) or B_(p), (N-2)/4+1 in number, although the truncated sequence consists of the first conjugate components H_(m), N/2+1 in number. As an eventual consequence, the discussions described hereinabove, those for Equation (8) and so forth inclusive, apply if the number N/4 used when the number of points N is equal to an even integral multiple of two is rewritten to [N/4] where a pair of brackets is the Gauss' notation known in mathematics.

With reference to a DFT calculator according to the first embodiment of this invention and exemplified in FIG. 1, it is now understood that a DFT calculator according to this invention is responsive to a sequence of N-point complex input data F_(k) for producing a prescribed one of a sequence of real parts f_(n) ^(R) of DFT's of the input data F_(k), a sequence of imaginary parts f_(n) ^(I) of the DFT's, a sequence of real parts f_(n) ^(R) of IDFT's of the input data F_(k), and a sequence of imaginary parts f_(n) ^(I) of the IDFT's (k=0, 1, . . . , and N-1, n=0, 1, . . . , and N-1, where N represents an even number). The pre-processor 11 carries out extraction, from the input data F_(k) according to Equation (7) or (7a), of a truncated sequence of first conjugate components H_(m) or H_(N-m) (m=0, 1, . . . , and N/ 2) of one of symmetry and antisymmetry that is selected according as the real parts f_(n) ^(R) of the DFT's or IDFT's are to be produced and the imaginary parts f_(n) ^(I) thereof are to be produced, respectively. In compliance with Equation (6), the pre-processor 11 carries out extraction, from the truncated sequence, of a symmetric sequence of second conjugate components A_(p), A_(N/2-p), A_(N/2+p), or A_(N-p) and an antisymmetric sequence of second conjugate components B_(p), B_(N/2-p), B_(N/2+p), or B_(N-p) (p=0, 1, . . . , and [N/4]). The first conjugate components H_(m) or H_(N-m) are generally represented by H_(m) as noted hereinabove. Similarly, the second ones A_(p) and B_(p) or the like are represented by A_(p) and B_(p) in general.

In preparation for calculation of Equation (5), (5'), (5"), (5a), or the like, the pre-processor 11 calculates complex products of predetermined factors and the second conjugate components of one of the symmetric and antisymmetric sequences A_(p) or B_(p) that is selected according as the real parts f_(n) ^(R) of the DFT's or IDFT's and the imaginary parts f_(n) ^(I) thereof are to be produced, respectively. Generally speaking, the predetermined factors are jexp(-j[2π/N]p) and jexp(j[2π/N]p) according as the DFT's and the IDFT's are to be calculated, respectively. In order to calculate the former half of Equation (5), (5'), (5"), (5a), or the like, the pre-processor 11 calculates first algebraic sums of the complex products and the respective second conjugate components of the other of the symmetric and antisymmetric sequences B_(p) or A_(p). The first algebraic sums are complex arithmetic sums and differences when the real parts f_(n) ^(R) and the imaginary parts f_(n) ^(I) of the DFT's or IDFT's are to be derived, respectively. For the latter half of Equation (5) or the like, the pre-processor 11 calculates second algebraic sums of the complex products and the last-mentioned components B_(p) or A_(p). The second algebraic sums are complex arithmetic differences and sums when the first ones are the arithmetic sums and differences, respectively. The pre-processor 11 further calculates conjugate complex data of the second algebraic sums. Alternatively, the predetermined factors are exp(-j[2π/N]p) and exp(j[2π/N]p). In this event, each of the second conjugate components of the unselected sequence B_(p) or A_(p) should include a factor j. If it is desired to derive negative real or imaginary parts -f_(n) ^(R) or -f_(n) ^(I) of the DFT's or IDFT's of the input data F_(k) according to Equation (5") or its equivalent, each of the second conjugate components of both sequences A_(p) and B_(p) should include a factor (-1). At any rate, the first algebraic sums and the conjugate complex data provide N/2-point complex intermediate data G_(p) (p=0, 1, . . . , and N/2) among which the intermediate datum G_(N/2) is redundant because G_(N/2) =G₀.

Being a known DFT calculator, the N/2-point DFT calculating circuit 13 has real output terminals 14_(q) and imaginary output terminals 15_(q) (q=0, 1, . . . , and N/2-1). Supplied with the N/2-point intermediate data G_(p) (p=0, 1, . . . , and N/2-1) as a sequence of N/2-point complex input data, the circuit 13 carries out known DFT and IDFT of the latter input data G_(p) to deliver real and imaginary parts g_(q) ^(R) and g_(q) ^(I) of the DFT's or IDFT's g_(q) to the real and imaginary output terminals 14_(q) and 15_(q), respectively. According to Equation (9) and (10) or the like, the real and imaginary parts g_(q) ^(R) and g_(q) ^(I) give even and odd numbered real parts f_(2n') ^(R) and f_(2n'+1) ^(R) or imaginary parts of f_(2n') ^(I) and f_(2n'+1) ^(I) of DFT's or IDFT's f_(n) of the N-point input data F_(k).

Referring now to FIG. 2 and FIGS. 3(a) and (b), a pre-processor 11 for use in a DFT calculator according to the first embodiment of this invention is for eight-point complex input data F_(k) (k=0, 1, . . . , and 7). The pre-processor 11 has input terminals 10_(k) for the respective input data F_(k) and output leads 12_(p) for four-point complex intermediate data G_(p) (p=0, 1, 2, and 3), respectively. The pre-processor 11 comprises a first conjugate component extractor 21 for extracting a truncated sequence of first conjugate components H_(m) (m=0, 1, . . . , and 4) from the input data F_(k), a second conjugate component extractor 22 for extracting a symmetric sequence of second conjugate components A_(p) and an antisymmetric sequence of second conjugate components B_(p) (p=0, 1, and 2) from the truncated sequence, a complex arithmetic unit 23 for calculating complex products of the second conjugate components of the antisymmetric sequence B_(p) and predetermined factors jexp(j[2π/N]p), complex arithmetic sums of the products and the respective second conjugate components of the symmetric sequence A_(p), complex differences given by subtracting the respective products from the latter components A_(p), and conjugate complex data of the respective differences, and a scaling circuit 24 for multiplying selected ones of the sums and the conjugate complex data by preselected constants, such as 1/2, to supply the intermediate data G_(p) to the output leads 12_(p). In FIGS. 3(a) and (b), the input data F_(k) and the like are depicted together with the units, including the N/2-point DFT calculating circuit 13, for processing various data. It will be seen that the data F₇, G₃, H₄, A₂, and B₂ are designated by F_(N-1), G_(N/2-1), H_(N/2), A_(N/4), and B_(N/4) in FIG. 3.

Referring more particularly to FIG. 2, the first conjugate component extractor 21 comprises a zeroth conjugate complex circuit 25₀ responsive to the zeroth input datum F₀ for producing the conjugate complex datum F₀ * thereof, namely, F₈₋₀ *, a first conjugate complex circuit 25₁ responsive to the seventh input datum F₇ for producing the conjugate complex datum F₇ * or F₈₋₁ *, a second conjugate complex circuit 25₂ responsive to the sixth input datum F₆ for producing the conjugate complex datum F₆ * or F₈₋₂ * a third conjugate complex circuit 25₃ responsive to the fifth input datum F₅ for producing the conjugate complex datum F₅ * or F₈₋₃ *, a zeroth complex adder 26₀ for adding the zeroth input datum F₀ and the conjugate complex datum F₈₋₀ * produced by the zeroth conjugate complex circuit 25₀ to produce a zeroth total 2H₀ according to Equation (7), a first complex adder 26₁ for adding the first input datum F₁ and the conjugate complex datum F₈₋₁ * to produce a first total 2H₁, a second complex adder 26₂ for adding the second input datum F₂ and the conjugate complex datum F₈₋₂ * to produce a second total 2H₂, a third complex adder 26₃ for adding the third input datum F₃ and the conjugate complex datum F₈₋₃ * to produce a third total 2H₃, and a fourth complex adder 26₄ for adding the fourth input datum F₄ and the conjugate complex datum F₈₋₄ * to produce a fourth total 2H₄. The second conjugate component extractor 22 comprises a zeroth conjugate complex circuit 27₀ responsive to the fourth total 2H₄ for producing the conjugate complex datum 2H₄ * thereof, namely, 2H₄₋₀ *, a first conjugate complex circuit 27₁ responsive to the third total 2H₃ for producing the conjugate complet datum 2H₃ * or 2H₄₋₁ *, a second conjugate complex circuit 27₂ responsive to the secont total 2H₂ for producing the conjugate complex datum 2H₂ * or 2H₄₋₂ *, a zeroth complex adder 28₀ for adding the zeroth total 2H₀ and the conjugate complex datum 2H₄₋₀ * to produce a zeroth sum 2A₀ in compliance with Equation (6), a first complex adder 28₁ for adding the first total 2H₁ and the conjugate complex datum 2H₄₋₁ * to produce a first sum 2A₁, a second complex adder 28₂ for adding the second total 2H₂ and the conjugate complex datum 2H₄₋₂ * to produce a second sum 2A₂, a zeroth complex subtractor 29₀ for subtracting the conjugate complex datum 2H₄₋₀ * from the zeroth total 2H₀ to produce a zeroth difference 2B₀, and first and second subtractors 29₁ and 29₂ for similarly producing first and second differences 2B₁ and 2B₂. For convenience, the totals 2 H₀ through 2H₄ are labelled in FIG. 2 by the first conjugate components H₀ through H₄ while the sums and differences 2A₀ through 2A₂ and 2B₀ through 2B₂, by the second conjugate components A₀ through A₂ and B₀ through B₂.

Further referring to FIG. 2 and FIG. 3(a), the arithmetic unit 23 comprises zeroth through second factor input terminals 31₀, 31₁, and 31₂ supplied with predetermined factors jexp(j[2π/8]×0), jexp(j[2π/8]×1), and jexp(j[2π/8]×2), respectively, zeroth through second complex multipliers 32₀, 32₁, and 32₂ for multiplying the zeroth through second differences 2B₀ through 2B₂ by the zeroth through second factors, respectively, to derive zeroth through second complex products, a zeroth complex adder 33₀ for adding the zeroth sum 2A₀ and the zeroth product to produce a zeroth result 2G₀ with reference to Equation (5), first and second complex adders 33₁ and 33₂ for likewise deriving first and second results 2G₁ and 2G₂, a subtractor 34 for subtracting the first product 2jB₁ ·exp(j[2π/N]) from the first sum 2A₁, and a conjugate complex circuit 35 for calculating the conjugate complex datum of the output of the subtractor 34 to produce a third result 2G₁ * or 2G₃. Although first and second subtractors 36₈ and 36₉ and first and second conjugate complex circuits 37₈ and 37₉ connected thereto, respectively, are depicted, first and second additional results 2G₄ * and 2G₂ * thereby produced are equal to the zeroth and the second results 2G₀ and 2G₂, respectively. The scaling circuit 24 comprises zeroth through third real multipliers 39₀, 39₁, 39₂, and 39₃ for multiplying the first through third results 2G₀ through 2G₃ by 1/2. Each of the multipliers 39 (suffixes omitted) may be a known scaler for shifting by one bit a binary number to less significant digits. As will readily be understood, the scaling circuit 24 may be interposed between the first and second extractors 21 and 22 or between the second extractor 22 and the arithmetic unit 23.

Turning to FIG. 5, a conjugate complex circuit 25, 27, 35, or 37 (suffixes omitted) has real and imaginary input terminals 41 and 42 and real and imaginary output terminals 43 and 44. A real part A_(R) of a complex input datum A is supplied from the real input terminal 41 directly to the real output terminal 43. An imaginary part A_(I) of the input datum A supplied to the imaginary input terminal 42 is delivered to the imaginary output terminal 44 through a polarity inverter 46 as an imaginary part -A_(I) of the conjugate complex datum A*, which is defined by A_(R) -jA_(I).

Referring to FIG. 6, a complex adder 26, 28, or 33 (suffixes omitted) has first real and imaginary input terminals 51 and 52 for a first complex input datum A, second real and imaginary input terminals 53 and 54 for a second complex input datum B, and real and imaginary output terminals 55 and 56 for a complex sum C. A first adder 58 adds real parts A_(R) and B_(R) of the first and second input data A and B to produce a real part C_(R) of the sum C. A second adder 59 produces an imaginary part C_(I) of the sum C in response to imaginary parts A_(I) and B_(I) of the first and second data A and B. A complex subtractor 29 or 34 (suffixes omitted) is similar in structure. Incidentally, the adders 58 and 59 may be of the structure of an adder described in the book cited hereinabove with reference to FIG. 8.20 (page 506).

Referring to FIG. 7, a complex multiplier 32 (suffix omitted) has first real and imaginary input terminals 61 and 62 for a first complex input datum A, second real and imaginary input terminals 63 and 64 for a second complex input datum B, and real and imaginary output terminals 65 and 66 for a complex product C. A first multiplier 71 calculates a first product of real parts A_(R) and B_(R) of the first and second data A and B. A second multiplier 72 calculates a second product of imaginary parts A_(I) and B_(I) of the input data A and B. A third multiplier 73 calculates a third product of the imaginary part A_(I) and the real part B_(R) while a fourth multiplier 74, a fourth product A_(R) B_(I). A subtractor 76 subtracts the second product A_(I) B_(I) from the first product A_(R) B_(R) to produce the difference as a real part C_(R) of the complex product C. An adder 77 adds the third and fourth products A_(R) B_(I) and A_(I) B_(R) to derive the sums as an imaginary part C_(I) of the complex product C. Incidentally, the multipliers 71 through 74 may be similar to an add-shift multiplier illustrated in the book referenced hereinabove with reference to FIG. 8.20 (page 516).

Turning back to FIG. 2, a pre-processor 11 for use in a DFT calculator for producing real parts f_(n) ^(R) of DFT's f_(n) of the N-point complex input data F_(k) should have the factor input terminals 31 (suffixes omitted) supplied with predetermined factors jexp(-j[2π/N]p) instead of the factors jexp(j[2π/N]p). This is achieved by merely changing the signals supplied to the input terminals 31.

Referring again to FIG. 2, a pre-processor 11 for use in making a DFT calculator produce the imaginary parts f_(n) ^(I) of DFT's or IDFT's of the N-point complex input data F_(k) according to the second embodiment of this invention should produce the N/2-point complex intermediate data G_(p) using a truncated sequence of the first conjugate components H_(m) of antisymmetry defined by Equation (7a). For this purpose, the complex adders 26 should be understood to be complex subtractors for subtracting the conjugate complex data F_(N-k) * from the complex input data F_(k), respectively. Furthermore, it is necessary at first to multiply the second conjugate components of the symmetric sequence A_(p) by predetermined factors exp(-j[2π/N]p) or exp(j[2π/N]p). Zeroth through second connections 81₀, 81₁, and 81₂ should therefore be understood to comprise complex multipliers which are equivalent to the complex multipliers 32 and supplied from the respective factor input terminals 31. Instead, the illustrated complex multipliers 32 should be understood to be simple multipliers which are not supplied from the factor input terminals 31 but multiply the second conjugate components of the antisymmetric sequence B_(p) merely by the imaginary unit (-j). Such a simple multiplier is not one for complex data but a circuit, such as a conjugate complex circuit shown in FIG. 5, whereby a real part A_(R) of a complex input datum A is produced as an imaginary part A_(I) ' (not shown) of a complex output datum A' without any change while an imaginary part A_(I) of the input datum A is produced as a real part A_(R) ' of the output datum A' with the polarity inversed by a polarity inverter, such as that depicted in FIG. 5 at 46. In the second place, the subtractors 29 should subtract the complex products supplied thereto through the connections 81 (suffixes omitted) from the second conjugate components multiplied by the imaginary unit to become -jB_(p).

Referring once again to FIG. 2, it is to be noted that Equation (11) for p=0 and N/4 are, if use is made of the nature of Modulo N of the complex input data F_(k) :

    G.sub.0 =(1/2)[(F.sub.0 +F.sub.N *)+(F.sub.N/2 *+F.sub.N/2)+j([F.sub.0 +F.sub.N *]-[F.sub.N/2 *+F.sub.N/2 ])·exp(j×0)]=Re[F.sub.O ]+Re[F.sub.N/2 ]+j(Re[F.sub.0 ]-Re[F.sub.N/2 ])           (16)

and

    G.sub.N/4 =(1/2)[(F.sub.N/4 +F.sub.3N/4 *)+(F.sub.N/4 *+F.sub.3N/4)+j([F.sub.N/4 +F.sub.3N/4 *]-[F.sub.N/4 *+F.sub.3N/4 ])·exp(j[π/2])]=F.sub.N/4 *+F.sub.3N/4.       (17)

it should also be noted that the complex multiplications for the second conjugate components A₀ or B₀ and A_(N/4) or B_(N/4) are by 1 and -j for DFT's and IDFT's. It is therefore possible to simplify the circuitry of the pre-processor 11. More specifically for N=8 depicted in FIG. 2, it is possible according to Equation (16) to dispense with the circuit elements 25₀, 25₄, 26₀, 26₄, 27₀, 28₀, 29₀, 31₀, 32₀ (or 81₀), 33₀, 34₀, 35₀, and 39₀ for the zeroth and the fourth or N/2-th input data F₀ and F_(N/2) (F₄) and instead to use an adder for adding the real parts of the input data F₀ and F_(N/2) supplied to the input terminals 10₀ and 10_(N/2) (10₄) to provide the real part of the zeroth intermediate datum G₀ and a subtractor for subtracting the real part of the N/2-th input datum F_(N/2) from the real part of the zeroth one F₀ to provide the imaginary part of the intermedate datum G₀. Although an adder and a subtractor for real parts alone have not been discribed in conjunction with FIG. 2, they should be understood to be depicted as the adder 28₀ or 33₀ and the subtractor 29₀ or 34₀. For Equation (17), it is possible to dispense with the second or N/4-th conjugate complex circuit 25_(N/4) (25₂) connected to the N_(3N/4) -th input terminal 10_(3N/4) (10₆) and to understand a connection 82 between the N/4-th input terminal 10_(N/4) (10₂) and the N/4-th complex adder 26_(N/4) (26₂) to comprise a conjugate complex circuit, such as 25₂. The circuit elements interposed between the complex adder 26_(N/4) and the N/4-th output lead 12_(N/4) (10₂) for the N/4-th and 3N/4-th input data F_(N/4) and F_(3N/4) are unnecessary. Even when the number of points N of the input data F_(k) is equal to an odd integral multiple of two, Equation (16) also holds. Circuit elements illustrated in FIG. 2 for the N/4-th intermediate datum G_(N/4) are unnecessary.

As regards the first and second extractors 21 and 22 of the pre-processor 11 illustrated with reference to FIG. 2, it should be noted in connection with Equation (6) that the first conjugate components H_(s) in a latter half of the truncated sequence (s=N/4, . . . , N/2-1, and N/2) are always subjected to calculation of the conjugate complex data H_(s) *. Modification of the first extractor 21 is therefore possible so as to calculate H_(s) * instead of H_(s). It may be mentioned in this connection that:

    H.sub.s *=(1/2)(F.sub.N-s *+F.sub.s).                      (18)

Comparison of Equation (18) with Equation (7) or (7a) readily reveals that calculation of the conjugate complex data of the latter-half conjugate symmetric or antisymmetric components H_(s) * is possible by merely connecting in the first extractor 21 the (N-s)-th conjugate complex circuits 25_(N-s) to the (N-s)-th input terminals 10_(N-s) rather than to the s-th input terminals 10_(s). Under the circumstances, a connection 83 between the (N-s)-th input terminal 10_(N-s) (10₃) and the (N-s)-th complex adder 26_(N-s) (26₃) should be understood to comprise such a circuit 25_(N-s) with the illustrated conjugate complex circuit 25₃ removed. With this modification of the first extractor 21, the (N/2-s)-th conjugate complex circuits 27_(N/2-s) (27₁) in the second extractor 22 turns out to be unnecessary. In connection with the above, it should be understood that a truncated sequence of first conjugate components H_(m) of symmetry or antisymmetry may consist of first-part components H₀, H₁, . . . , and H.sub.[N/4] and latter-part components H.sub.[N/4]+1 *, . . . , H_(N/2-1) *, and H_(N/2) *. When the number of points N is equal to an even integral multiple of two, the N/4-th conjugate symmetric or antisymmetric component N_(N/4) may be the conjugate complex component H_(N/4) *.

As has thus far been described, a DFT calculator according to this invention enables DFT's for IDFT's to be calculated with the number of times of multiplication reduced to about 1/4 and 1/2 as compared with a sophisticated DFT calculator and an FFT calculator, respectively. The calculation is therefore accomplished with a speed of about four times and twice, respectively. 

What is claimed is:
 1. A discrete Fourier transform calculator responsive to a sequence of N-point discrete complex input data, where N is representative of an even number, for producing a prescribed one of a sequence of real parts of N-point discrete Fourier transforms of said input data, a sequence of imaginary parts of said Fourier transforms, a sequence of real parts of N-point inverse discrete Fourier transforms of said input data, and a sequence of imaginary parts of said inverse discrete Fourier transforms, said calculator comprising:a pre-processor responsive to said input data for producing a sequence of N/2-point complex intermediate data, said pre-processor comprising, in turn: first means for extracting from said input data a truncated sequence of first conjugate components of one of symmetry and antisymmetry that is selected according as said real parts of said discrete Fourier transforms and said inverse discrete Fourier transforms are to be produced and said imaginary parts of said discrete Fourier transforms and said inverse discrete Fourier transforms are to be produced, respectively; second means for extracting from said first conjugate components a symmetric sequence of second conjugate components and an antisymmetric sequence of second conjugate components; and third means for calculating complex products of factors selected according as said real and imaginary parts of said discrete Fourier transforms and said real and imaginary parts of said inverse discrete Fourier transforms are to be produced and the second conjugate components of one of said symmetric and antisymmetric sequences that is selected according as said real parts of said discrete Fourier transforms and said inverse discrete Fourier transforms and said imaginary parts of said discrete Fourier transforms and said inverse discrete Fourier transforms are to be produced, respectively, first algebraic sums of said complex products and the respective second conjugate components of the other of said symmetric and antisymmetric sequences, second algebraic sums of said complex products and the respective second conjugate components of said other sequence, and conjugate complex data of said second algebraic sums, said first algebraic sums and said conjugate complex data providing said N/2-point complex intermediate data; and an N/2-point discrete Fourier transform calculating circuit having real output terminals N/2 in number, and imaginary output terminals, also N/2 in number, responsive to said N/2-point complex intermediate data supplied thereto as N/2-point complex input data for supplying said real and imaginary output terminals with the transforms of said prescribed sequence.
 2. A discrete Fourier transform calculator as claimed in claim 1, said calculator being adapted to production of a selected one of said sequence of the real parts of said discrete Fourier transforms and said inverse discrete Fourier transforms, wherein:said first means comprises means for producing, as said truncated sequence of first conjugate components of one of symmetry and antisymmetry, a first truncated sequence of conjugate symmetric components of said N-point input data; said second means comprising means for producing a second truncated sequence of conjugate symmetric components of said first truncated sequence and a second truncated sequence of conjugate antisymmetric components of said first truncated sequence as said symmetric and antisymmetric sequences, respectively; said third means comprising means for calculating said complex products by multiplying the conjugate antisymmetric components of said second truncated sequence by the factors selected according as the real parts of said discrete Fourier transforms and said inverse discrete Fourier transforms are to be produced, means for calculating said first algebraic sums by adding said complex products to the respective conjugate symmetric components of said second truncated sequence, means for calculating said second algebraic sums by subtracting said complex products from the respective conjugate symmetric components of said second truncated sequence to provide complex differences, and means for calculating said conjugate complex data by calculating conjugate complex data of the respective complex differences.
 3. A discrete Fourier transform calculator as claimed in claim 1, said calculator being adapted to production of a selected one of said sequences of the imaginary parts of said discrete Fourier transforms and said inverse discrete Fourier transforms, wherein:said first means comprises means for producing, as said truncated sequence of first conjugate components of symmetry and antisymmetry, a first truncated sequence of conjugate antisymmetric components of said N-point input data; said second means comprising means for producing a second truncated sequence of conjugate symmetric components of said first truncated sequence and a second truncated sequence of conjugate antisymmetric components of said first truncated sequence as said symmetric and antisymmetric sequences, respectively; said third means comprising means for calculating said complex products by multiplying the conjugate symmetric components of said second truncated sequence by the factors selected according as the imaginary parts of said discrete Fourier transforms and said inverse discrete Fourier transforms are to be produced, means for calculating said first algebraic sums by subtracting said conjugate antisymmetric components of said second truncated sequence from the respective complex products, means for calculating said second algebraic sums by adding said complex products to the respective conjugate antisymmetric components of said second truncated sequence to provide complex sums, and means for calculating said conjugate complex data by calculating conjugate complex data of the respective complex sums. 